package com.leyou.domain.db1entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TableCellExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TableCellExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCellkeyIsNull() {
            addCriterion("cellkey is null");
            return (Criteria) this;
        }

        public Criteria andCellkeyIsNotNull() {
            addCriterion("cellkey is not null");
            return (Criteria) this;
        }

        public Criteria andCellkeyEqualTo(String value) {
            addCriterion("cellkey =", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyNotEqualTo(String value) {
            addCriterion("cellkey <>", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyGreaterThan(String value) {
            addCriterion("cellkey >", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyGreaterThanOrEqualTo(String value) {
            addCriterion("cellkey >=", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyLessThan(String value) {
            addCriterion("cellkey <", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyLessThanOrEqualTo(String value) {
            addCriterion("cellkey <=", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyLike(String value) {
            addCriterion("cellkey like", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyNotLike(String value) {
            addCriterion("cellkey not like", value, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyIn(List<String> values) {
            addCriterion("cellkey in", values, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyNotIn(List<String> values) {
            addCriterion("cellkey not in", values, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyBetween(String value1, String value2) {
            addCriterion("cellkey between", value1, value2, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCellkeyNotBetween(String value1, String value2) {
            addCriterion("cellkey not between", value1, value2, "cellkey");
            return (Criteria) this;
        }

        public Criteria andCelltypeIsNull() {
            addCriterion("celltype is null");
            return (Criteria) this;
        }

        public Criteria andCelltypeIsNotNull() {
            addCriterion("celltype is not null");
            return (Criteria) this;
        }

        public Criteria andCelltypeEqualTo(String value) {
            addCriterion("celltype =", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeNotEqualTo(String value) {
            addCriterion("celltype <>", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeGreaterThan(String value) {
            addCriterion("celltype >", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeGreaterThanOrEqualTo(String value) {
            addCriterion("celltype >=", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeLessThan(String value) {
            addCriterion("celltype <", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeLessThanOrEqualTo(String value) {
            addCriterion("celltype <=", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeLike(String value) {
            addCriterion("celltype like", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeNotLike(String value) {
            addCriterion("celltype not like", value, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeIn(List<String> values) {
            addCriterion("celltype in", values, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeNotIn(List<String> values) {
            addCriterion("celltype not in", values, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeBetween(String value1, String value2) {
            addCriterion("celltype between", value1, value2, "celltype");
            return (Criteria) this;
        }

        public Criteria andCelltypeNotBetween(String value1, String value2) {
            addCriterion("celltype not between", value1, value2, "celltype");
            return (Criteria) this;
        }

        public Criteria andCouponkeyIsNull() {
            addCriterion("couponkey is null");
            return (Criteria) this;
        }

        public Criteria andCouponkeyIsNotNull() {
            addCriterion("couponkey is not null");
            return (Criteria) this;
        }

        public Criteria andCouponkeyEqualTo(String value) {
            addCriterion("couponkey =", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyNotEqualTo(String value) {
            addCriterion("couponkey <>", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyGreaterThan(String value) {
            addCriterion("couponkey >", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyGreaterThanOrEqualTo(String value) {
            addCriterion("couponkey >=", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyLessThan(String value) {
            addCriterion("couponkey <", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyLessThanOrEqualTo(String value) {
            addCriterion("couponkey <=", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyLike(String value) {
            addCriterion("couponkey like", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyNotLike(String value) {
            addCriterion("couponkey not like", value, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyIn(List<String> values) {
            addCriterion("couponkey in", values, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyNotIn(List<String> values) {
            addCriterion("couponkey not in", values, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyBetween(String value1, String value2) {
            addCriterion("couponkey between", value1, value2, "couponkey");
            return (Criteria) this;
        }

        public Criteria andCouponkeyNotBetween(String value1, String value2) {
            addCriterion("couponkey not between", value1, value2, "couponkey");
            return (Criteria) this;
        }

        public Criteria andQuotaIsNull() {
            addCriterion("quota is null");
            return (Criteria) this;
        }

        public Criteria andQuotaIsNotNull() {
            addCriterion("quota is not null");
            return (Criteria) this;
        }

        public Criteria andQuotaEqualTo(Integer value) {
            addCriterion("quota =", value, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaNotEqualTo(Integer value) {
            addCriterion("quota <>", value, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaGreaterThan(Integer value) {
            addCriterion("quota >", value, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaGreaterThanOrEqualTo(Integer value) {
            addCriterion("quota >=", value, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaLessThan(Integer value) {
            addCriterion("quota <", value, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaLessThanOrEqualTo(Integer value) {
            addCriterion("quota <=", value, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaIn(List<Integer> values) {
            addCriterion("quota in", values, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaNotIn(List<Integer> values) {
            addCriterion("quota not in", values, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaBetween(Integer value1, Integer value2) {
            addCriterion("quota between", value1, value2, "quota");
            return (Criteria) this;
        }

        public Criteria andQuotaNotBetween(Integer value1, Integer value2) {
            addCriterion("quota not between", value1, value2, "quota");
            return (Criteria) this;
        }

        public Criteria andCountIsNull() {
            addCriterion("count is null");
            return (Criteria) this;
        }

        public Criteria andCountIsNotNull() {
            addCriterion("count is not null");
            return (Criteria) this;
        }

        public Criteria andCountEqualTo(Integer value) {
            addCriterion("count =", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountNotEqualTo(Integer value) {
            addCriterion("count <>", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountGreaterThan(Integer value) {
            addCriterion("count >", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("count >=", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountLessThan(Integer value) {
            addCriterion("count <", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountLessThanOrEqualTo(Integer value) {
            addCriterion("count <=", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountIn(List<Integer> values) {
            addCriterion("count in", values, "count");
            return (Criteria) this;
        }

        public Criteria andCountNotIn(List<Integer> values) {
            addCriterion("count not in", values, "count");
            return (Criteria) this;
        }

        public Criteria andCountBetween(Integer value1, Integer value2) {
            addCriterion("count between", value1, value2, "count");
            return (Criteria) this;
        }

        public Criteria andCountNotBetween(Integer value1, Integer value2) {
            addCriterion("count not between", value1, value2, "count");
            return (Criteria) this;
        }

        public Criteria andTotalIsNull() {
            addCriterion("total is null");
            return (Criteria) this;
        }

        public Criteria andTotalIsNotNull() {
            addCriterion("total is not null");
            return (Criteria) this;
        }

        public Criteria andTotalEqualTo(Integer value) {
            addCriterion("total =", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotEqualTo(Integer value) {
            addCriterion("total <>", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalGreaterThan(Integer value) {
            addCriterion("total >", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalGreaterThanOrEqualTo(Integer value) {
            addCriterion("total >=", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalLessThan(Integer value) {
            addCriterion("total <", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalLessThanOrEqualTo(Integer value) {
            addCriterion("total <=", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalIn(List<Integer> values) {
            addCriterion("total in", values, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotIn(List<Integer> values) {
            addCriterion("total not in", values, "total");
            return (Criteria) this;
        }

        public Criteria andTotalBetween(Integer value1, Integer value2) {
            addCriterion("total between", value1, value2, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotBetween(Integer value1, Integer value2) {
            addCriterion("total not between", value1, value2, "total");
            return (Criteria) this;
        }

        public Criteria andDurationIsNull() {
            addCriterion("duration is null");
            return (Criteria) this;
        }

        public Criteria andDurationIsNotNull() {
            addCriterion("duration is not null");
            return (Criteria) this;
        }

        public Criteria andDurationEqualTo(Integer value) {
            addCriterion("duration =", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationNotEqualTo(Integer value) {
            addCriterion("duration <>", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationGreaterThan(Integer value) {
            addCriterion("duration >", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationGreaterThanOrEqualTo(Integer value) {
            addCriterion("duration >=", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationLessThan(Integer value) {
            addCriterion("duration <", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationLessThanOrEqualTo(Integer value) {
            addCriterion("duration <=", value, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationIn(List<Integer> values) {
            addCriterion("duration in", values, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationNotIn(List<Integer> values) {
            addCriterion("duration not in", values, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationBetween(Integer value1, Integer value2) {
            addCriterion("duration between", value1, value2, "duration");
            return (Criteria) this;
        }

        public Criteria andDurationNotBetween(Integer value1, Integer value2) {
            addCriterion("duration not between", value1, value2, "duration");
            return (Criteria) this;
        }

        public Criteria andGoodsnameIsNull() {
            addCriterion("goodsname is null");
            return (Criteria) this;
        }

        public Criteria andGoodsnameIsNotNull() {
            addCriterion("goodsname is not null");
            return (Criteria) this;
        }

        public Criteria andGoodsnameEqualTo(String value) {
            addCriterion("goodsname =", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameNotEqualTo(String value) {
            addCriterion("goodsname <>", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameGreaterThan(String value) {
            addCriterion("goodsname >", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameGreaterThanOrEqualTo(String value) {
            addCriterion("goodsname >=", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameLessThan(String value) {
            addCriterion("goodsname <", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameLessThanOrEqualTo(String value) {
            addCriterion("goodsname <=", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameLike(String value) {
            addCriterion("goodsname like", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameNotLike(String value) {
            addCriterion("goodsname not like", value, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameIn(List<String> values) {
            addCriterion("goodsname in", values, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameNotIn(List<String> values) {
            addCriterion("goodsname not in", values, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameBetween(String value1, String value2) {
            addCriterion("goodsname between", value1, value2, "goodsname");
            return (Criteria) this;
        }

        public Criteria andGoodsnameNotBetween(String value1, String value2) {
            addCriterion("goodsname not between", value1, value2, "goodsname");
            return (Criteria) this;
        }

        public Criteria andActivitykeyIsNull() {
            addCriterion("activitykey is null");
            return (Criteria) this;
        }

        public Criteria andActivitykeyIsNotNull() {
            addCriterion("activitykey is not null");
            return (Criteria) this;
        }

        public Criteria andActivitykeyEqualTo(String value) {
            addCriterion("activitykey =", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyNotEqualTo(String value) {
            addCriterion("activitykey <>", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyGreaterThan(String value) {
            addCriterion("activitykey >", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyGreaterThanOrEqualTo(String value) {
            addCriterion("activitykey >=", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyLessThan(String value) {
            addCriterion("activitykey <", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyLessThanOrEqualTo(String value) {
            addCriterion("activitykey <=", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyLike(String value) {
            addCriterion("activitykey like", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyNotLike(String value) {
            addCriterion("activitykey not like", value, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyIn(List<String> values) {
            addCriterion("activitykey in", values, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyNotIn(List<String> values) {
            addCriterion("activitykey not in", values, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyBetween(String value1, String value2) {
            addCriterion("activitykey between", value1, value2, "activitykey");
            return (Criteria) this;
        }

        public Criteria andActivitykeyNotBetween(String value1, String value2) {
            addCriterion("activitykey not between", value1, value2, "activitykey");
            return (Criteria) this;
        }

        public Criteria andDeadlineIsNull() {
            addCriterion("deadline is null");
            return (Criteria) this;
        }

        public Criteria andDeadlineIsNotNull() {
            addCriterion("deadline is not null");
            return (Criteria) this;
        }

        public Criteria andDeadlineEqualTo(Date value) {
            addCriterion("deadline =", value, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineNotEqualTo(Date value) {
            addCriterion("deadline <>", value, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineGreaterThan(Date value) {
            addCriterion("deadline >", value, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineGreaterThanOrEqualTo(Date value) {
            addCriterion("deadline >=", value, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineLessThan(Date value) {
            addCriterion("deadline <", value, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineLessThanOrEqualTo(Date value) {
            addCriterion("deadline <=", value, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineIn(List<Date> values) {
            addCriterion("deadline in", values, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineNotIn(List<Date> values) {
            addCriterion("deadline not in", values, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineBetween(Date value1, Date value2) {
            addCriterion("deadline between", value1, value2, "deadline");
            return (Criteria) this;
        }

        public Criteria andDeadlineNotBetween(Date value1, Date value2) {
            addCriterion("deadline not between", value1, value2, "deadline");
            return (Criteria) this;
        }

        public Criteria andProbabilityIsNull() {
            addCriterion("probability is null");
            return (Criteria) this;
        }

        public Criteria andProbabilityIsNotNull() {
            addCriterion("probability is not null");
            return (Criteria) this;
        }

        public Criteria andProbabilityEqualTo(Integer value) {
            addCriterion("probability =", value, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityNotEqualTo(Integer value) {
            addCriterion("probability <>", value, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityGreaterThan(Integer value) {
            addCriterion("probability >", value, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityGreaterThanOrEqualTo(Integer value) {
            addCriterion("probability >=", value, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityLessThan(Integer value) {
            addCriterion("probability <", value, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityLessThanOrEqualTo(Integer value) {
            addCriterion("probability <=", value, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityIn(List<Integer> values) {
            addCriterion("probability in", values, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityNotIn(List<Integer> values) {
            addCriterion("probability not in", values, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityBetween(Integer value1, Integer value2) {
            addCriterion("probability between", value1, value2, "probability");
            return (Criteria) this;
        }

        public Criteria andProbabilityNotBetween(Integer value1, Integer value2) {
            addCriterion("probability not between", value1, value2, "probability");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}
